package com.xu.system.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * <p>
 * 菜单表
 * </p>
 *
 * @author 许乾伟
 * @since 2024-12-03 03:53:30
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("sys_menu")
public class SysMenu {

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 菜单名称
     */
    @TableField("menu_name")
    private String menuName;

    /**
     * 菜单标识
     */
    @TableField("menu_code")
    private String menuCode;

    /**
     * 父菜单ID
     */
    @TableField("parent_id")
    private Long parentId;

    /**
     * 路由地址
     */
    @TableField("path")
    private String path;

    /**
     * 权限标识
     */
    @TableField("perms")
    private String perms;

    /**
     * 是否为外链（true:是;false:否）
     */
    @TableField("is_frame")
    private Boolean isFrame;

    /**
     * 类型（M目录 C菜单 F按钮）
     */
    @TableField("menu_type")
    private String menuType;

    /**
     * 是否显示（true:显示;false:隐藏）
     */
    @TableField("is_visible")
    private Boolean isVisible;

    /**
     * 图标
     */
    @TableField("icon")
    private String icon;

    /**
     * 显示顺序
     */
    @TableField("sort")
    private Integer sort;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 状态（false:停用;true:正常）
     */
    @TableField("status")
    private Boolean status;

    /**
     * 创建者
     */
    @TableField("create_by")
    private Long createBy;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 更新者
     */
    @TableField("update_by")
    private Long updateBy;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 是否删除（false:正常;true:删除）
     */
    @TableField("is_delete")
    private Boolean isDelete;

    public static final String ID = "id";

    public static final String MENU_NAME = "menu_name";

    public static final String MENU_CODE = "menu_code";

    public static final String PARENT_ID = "parent_id";

    public static final String PATH = "path";

    public static final String PERMS = "perms";

    public static final String IS_FRAME = "is_frame";

    public static final String MENU_TYPE = "menu_type";

    public static final String IS_VISIBLE = "is_visible";

    public static final String ICON = "icon";

    public static final String SORT = "sort";

    public static final String REMARK = "remark";

    public static final String STATUS = "status";

    public static final String CREATE_BY = "create_by";

    public static final String CREATE_TIME = "create_time";

    public static final String UPDATE_BY = "update_by";

    public static final String UPDATE_TIME = "update_time";

    public static final String IS_DELETE = "is_delete";
}
